const ErrorCode = require("@/lib/error/code")
const Path = require('path')
const YBFile = require("@/lib/file")
const Config = require("@config/index")

class Server {

	constructor() {

	}

	/**
	 * 文件上传
	 * @param ctx 环境上下文
	 * @returns {string|SVGPathElement|*}
	 */
  static upImage (ctx) {
    const files = ctx.request.files
    if (files && files.file) {
    	let filename = Path.win32.basename(files.file.path)
      return {
    		...files.file,
				serverPath: `/ybweb/up_data/${filename}`
			}
    } else {
      throw ErrorCode.tool.up_error
    }
  }

	/**
	 * 获取所有本地文件列表
	 * @param ctx 环境上下文
	 * @returns {Promise<any>}
	 */
	static async fillAll (ctx) {
		return await YBFile.getFiles(Config.koaBody.formidable.uploadDir)
	}

	/**
	 * 删除单个本地文件
	 * @param ctx 环境上下文
	 * @returns {Promise<any>}
	 */
	static async fillRemove (ctx) {
		return await YBFile.clearFile(Config.koaBody.formidable.uploadDir, ctx.vals.file)
	}

	/**
	 * 删除所有本地文件
	 * @param ctx 环境上下文
	 * @returns {Promise<any>}
	 */
	static async fillRemoveAll(ctx) {
		return await YBFile.clearAllFile(Config.koaBody.formidable.uploadDir)
	}
}

module.exports = Server
